<?php
if(!defined('BASEPATH')){exit('No direct script access allowed');}
Class Weixin
{
    private $appId;
    private $appSecret;
    function __construct()
    {
      $this->appId = trim('297058139218d77690ca24650996f275');
      $this->appSecret = trim('wyhqigya1k12wyhxr8wy8dtymmzhtn1jg');
    }
    function redirect_url($redirect)
    {
      /*授权页面*/
      $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=$this->appId&redirect_uri=$redirect&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
      return $url;
    }
    /* 通过code换取access_token*/
    function access_token($code)
    {
      /*获取到的code换取access_token和openid*/
      $post_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$this->appId&secret=$this->appSecret&code=$code&grant_type=authorization_code";
             // echo $post_url;exit();
      $return = $this->postdata($post_url);
      // print_r($return);exit();
      $access_token = $return['access_token'];
      $openid = $return['openid'];
      /*获取微信用户数据*/
      $get_userinfo = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";
      $userinfo = json_decode(file_get_contents($get_userinfo));
      return $userinfo;
    }
    function eff($access_token,$openid)
    {
      /*检测access_token是否正确，errcode＝0 为正确*/
      $eff_url = "https://api.weixin.qq.com/sns/auth?access_token=$access_token&openid=$openid";
      $get_eff =json_decode(file_get_contents($eff_url));
      return $get_eff;
    }
    //通过curl方式提交code换取access_token数据
    function postdata($url)
    {
       header('Content-Type:text/html;charset=utf-8');
       // echo $url;exit();
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
      curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
      curl_setopt($curl, CURLOPT_SSLVERSION, 1);
      // if (!empty($data)){
        // curl_setopt($curl, CURLOPT_POST, 1);
        // curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
      // }
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
      $output = curl_exec($curl);
      curl_close($curl);
      // var_dump($output);exit();
      // print_r($output);exit();
      $access = json_decode($output,true);
      return $access;
    }
    /*
      这个位置开始是控制器index()传入的微信用户资料处理
    */
      function save_session($data)
      {
        foreach ($data as $key => $value) {
          // $_SESSION['uid'] = $value['uid'];
          // $_SESSION['nickname'] = $value['nickname'];
          // $_SESSION['fullname'] = $value['fullname'];
          // $_SESSION['status'] = $value['status'];
          // $_SESSION['groups'] = $value['groups'];
          $_SESSION[$key] = $value;
        }
        return $_SESSION;
        // print_r($_SESSION);exit();
        // unset($_SESSION[0]);
      }
    function obj_to_arr($data)
    {
      // 进行转换成数组 使用 obj_to_arr方式
      $data = is_object($data)?get_object_vars($data):$data;
        foreach ($data as $key => $value)
        {
          $arr[$key] = $value;
        }
        return $arr;
    }
}